import { 
  IsString, 
  IsUrl, 
  IsOptional, 
  IsBoolean, 
  IsNumber,
  IsArray,
  ValidateNested,
  IsObject
} from 'class-validator';
import { Type } from 'class-transformer';

/**
 * 相关链接DTO
 */
class RelatedLinkDto {
  @IsString()
  title: string;

  @IsUrl()
  url: string;
}

/**
 * 创建工具 DTO
 */
export class CreateToolDto {
  @IsString()
  name: string;

  @IsString()
  slug: string;

  @IsString()
  @IsOptional()
  description?: string;

  @IsUrl()
  url: string;

  @IsString()
  @IsOptional()
  logo?: string;

  @IsString()
  @IsOptional()
  screenshot?: string;

  @IsBoolean()
  @IsOptional()
  isFree?: boolean;

  @IsBoolean()
  @IsOptional()
  isPremium?: boolean;

  @IsString()
  @IsOptional()
  pricing?: string;

  @IsNumber()
  @IsOptional()
  categoryId?: number;

  @IsBoolean()
  @IsOptional()
  isFeatured?: boolean;

  @IsBoolean()
  @IsOptional()
  isSponsored?: boolean;

  // ========== 新增详细字段 ==========

  // 多张截图
  @IsArray()
  @IsString({ each: true })
  @IsOptional()
  screenshots?: string[];

  // 使用场景说明
  @IsString()
  @IsOptional()
  useCases?: string;

  // 核心特性列表
  @IsArray()
  @IsString({ each: true })
  @IsOptional()
  features?: string[];

  // 优点列表
  @IsArray()
  @IsString({ each: true })
  @IsOptional()
  pros?: string[];

  // 缺点列表
  @IsArray()
  @IsString({ each: true })
  @IsOptional()
  cons?: string[];

  // 推荐理由
  @IsString()
  @IsOptional()
  recommendation?: string;

  // 官方文档链接
  @IsUrl()
  @IsOptional()
  docsUrl?: string;

  // GitHub链接
  @IsUrl()
  @IsOptional()
  githubUrl?: string;

  // 视频介绍链接
  @IsUrl()
  @IsOptional()
  videoUrl?: string;

  // 相关链接
  @IsArray()
  @ValidateNested({ each: true })
  @Type(() => RelatedLinkDto)
  @IsOptional()
  relatedLinks?: RelatedLinkDto[];
}







